package easy;

import org.junit.Test;

public class a680_验证回文字符串Ⅱ {
    //以"abdda"这个串为例，此时i指向'b'，j指向'd'，
    //发现不对了。但是有一次删除的机会，
    //我们自己写几个case其实就能发现，
    //此时子串范围为(i+1, j)或(i, j-1)的俩子串只要有任意一个是回文串，
    //则结果就是回文串，否则就不是。
    public boolean validPalindrome(String s) {
        if (s.length() < 2) return true;
        int i = 0;
        int j = s.length() - 1;
        while (i < j) {
            if (s.charAt(i) != s.charAt(j)) {
                return isvaild(s, i + 1, j) || isvaild(s, i, j - 1);
            }
            i++;
            j--;
        }
        return true;
    }

    public boolean isvaild(String s, int i, int j) {
        while (i < j) {
            if (s.charAt(i) != s.charAt(j)) {
                return false;
            }
            i++;
            j--;
        }
        return true;
    }

    @Test
    public void test() {
        System.out.println(validPalindrome("abc"));
    }
}
